package com.example.demo.localcache;

/**
 * ******************************************************
 *
 * @author liugh9
 * @version 1.0
 * @classname CacheNameDomain
 * @description 缓存名称模型接口定义，每个组件的使用者可以通过枚举的方式实现这个模型接口
 * @date 2024/01/24 15:27
 * <p>
 * ******************************************************
 */
public interface CacheNameDomain {

    /**
     * 缓存初始化顺序，级别越低，越早被初始化
     * <p>
     * 如果缓存的加载存在一定的依赖关系，通过缓存级别控制初始化或者刷新时缓存数据的加载顺序<br>
     * 级别越低，越早被初始化<br>
     * <p>
     * 如果缓存的加载没有依赖关系，可以使用默认顺序<code>Ordered.LOWEST_PRECEDENCE</code>
     *
     * @return 初始化顺序
     * @see org.springframework.core.Ordered
     */
    int getOrder();

    /**
     * 缓存名称，推荐使用英文大写字母表示
     *
     * @return 缓存名称
     */
    String getName();

    /**
     * 缓存描述信息，用于打印日志
     *
     * @return 缓存描述信息
     */
    String getDescription();
}
